以"笨方法學Ruby(Learn Ruby The Hard Way)"為教材, 真實記錄一個程式語言的外行人在實際練習"笨方法學Ruby"時對每一行程式碼的自問自答, 而隨著不停學習, 又推翻之前自以為是的錯誤解答的學習旅程, 希望能鼓勵更多和我一樣不懂程式語言卻又想學Ruby的人, 看看我是怎麼在程式碼裡撞牆跌倒又爬起來. 當然, 也希望各位前輩能夠在我把這些自以為是的錯誤解答貼出來時能夠不吝指教, 因為我不討拍, 而是來討教的!
我卡關了.
ex48沒有辦法在今天完成(都十一點半了, 剛剛it邦還掛掉, 差點嚇死我), 我的參考老師TESTHEAD在這個練習卡了一個月之久, 最後他選擇跳過這個練習, 我只好效法聯考答題絕招"不會的先跳過", 先留下我的進度紀錄, 跳過ex48, 明天直接做ex49.
ex.48: 到目前為止作為一個遊戲開發者, 這些練習都很有趣, 但是如果你是玩家, 你能輸入的指令非常非常的受限, 跟芝麻開門一樣, 一個字都不能錯, 這樣非常的不體貼, 所以我們要來做一個模組能夠判別玩家輸入的指令, 透過將句子拆解成單字, 讓系統去判別玩家輸入的句子並走到相對應的下一步,
目前會用得到的字詞分類如下
表示方向: north, south, east, west, down, up, left, right, back.
動詞: go, stop, kill, eat.
介系詞: the, in, of, from, at, it
名詞: door, bear, princess, cabinet.
數字詞: 由 0-9 構成的數字。
而拆解的方式是基於一個句子的組成會是動詞加名詞, 或者動詞加介系詞加名詞, 以及每一個句子都是由單字和空格組成這樣的模式.也就是說, 把句子用.split()分開, 參數則設成"空格",
接著我們要建立一組"struct", struct就像一組答案, 我把struct理解成類似之前學過的鍵值對(key-value pair), 只是鍵值對在這邊是struct的參數. 而底下的範例struct是最簡單的名詞加動詞
最後我們把被拆解的玩家輸入的句子去跟struct作比對, 讓系統去判斷該做什麼反應
寫成步驟的話, 我們做了底下幾件事:
最後回吐的部分會告訴玩家他輸入的句子是不是正確, 如果不正確又是哪裡不正確.
我會的就到這邊, 明天繼續!